package com.otv.managed.bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

import org.springframework.dao.DataAccessException;

import com.otv.model.Alojamiento;
import com.otv.model.Cliente;
import com.otv.cliente.service.IClienteService;


@ManagedBean(name="clienteMB")
@RequestScoped
public class ClienteManagedBean implements Serializable {
	
	private static final long serialVersionUID = 1L;
	private static final String SUCCESS = "success";
	private static final String ERROR   = "error";
	
	//Spring Service is injected...
	@ManagedProperty(value="#{ClienteService}")
	IClienteService clienteService;
	
	List<Cliente> clienteList;
	
	private int id;
	private String rut;
	private char digitoVerificador;
	private String nombre;
	private String apellido;
	private String telefono;
	private String descripcion;


	
	

	public String addCliente () {
		try {
			Cliente cliente = new Cliente();
			cliente.setId(getId());
			cliente.setRut(getRut());
			cliente.setDescripcion(getDescripcion());
			cliente.setDigitoVerificador (getDigitoVerificador());
			cliente.setNombre(getNombre());
			cliente.setApellido(getApellido());
			cliente.setTelefono(getTelefono());
			
			getClienteService().addCliente(cliente);

			return SUCCESS;
		} catch (DataAccessException e) {
			e.printStackTrace();
		} 	
		
		return ERROR;
	}
	
	/**
	 * Reset Fields
	 * 
	 */
	public void reset() {
		this.setId(0);
		this.setRut("");
		this.setDigitoVerificador(' ');
		this.setNombre("");
		this.setApellido("");
		this.setTelefono("");		
		this.setDescripcion("");
	}

	public IClienteService getClienteService() {
		return clienteService;
	}

	public void setClienteService(IClienteService clienteService) {
		this.clienteService = clienteService;
	}

	public List<Cliente> getClienteList() {
		this.clienteList = new ArrayList<Cliente>();
		this.clienteList.addAll(this.clienteService.getClientes());
		return clienteList;
	}

	public void setClienteList(List<Cliente> clienteList) {
		this.clienteList = clienteList;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getRut() {
		return rut;
	}

	public void setRut(String rut) {
		this.rut = rut;
	}

	public char getDigitoVerificador() {
		return digitoVerificador;
	}

	public void setDigitoVerificador(char digitoVerificador) {
		this.digitoVerificador = digitoVerificador;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	
}